using System;

namespace WDA.Core
{
	/// <summary>
	/// Interface of service controller - a component which is responsible for establishing communication
	/// channel to service implementation.
	/// </summary>
	public interface IServiceController : IDisposable
	{
		/// <summary>
		/// Returns reference to proxy of the service. Invocations made on this proxy are forwarded to
		/// service implementation sitting on the other end of communication channel.
		/// </summary>
		/// <returns>Proxy instance.</returns>
		object CreateServiceChannel();
	}
}